package DAOs;

import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;

import classes.Usuario;

public class DAOUsuario extends DAODefault {

public void createUsuario(Usuario usuario){
		
		String sql = "INSERT INTO usuario"+
					  "(Username,password) "
				+"VALUES(?,?)";
		
		
		
		
		try {
			stmt = conn.prepareStatement(sql);
			
			stmt.setString(1, usuario.getUsername());
			stmt.setString(2, usuario.getPassword());
			
			stmt.execute();
			
			stmt.close();
			
		} catch (SQLException e) {
			
			throw new RuntimeException(e);
		}
	}
	
	public ArrayList<Usuario> readUsuario(){
		ArrayList<Usuario> usuario = new ArrayList<>();
		String sql = "SELECT * FROM Usuario";
		
		try {
			stmt = conn.prepareStatement(sql);
			ResultSet rs = stmt.executeQuery();
			while(rs.next()){
				Usuario usuario2 = new Usuario();
				usuario2.setUsername(rs.getString("username"));
				usuario2.setPassword(rs.getString("password"));
			}
			return usuario;
		} catch (SQLException e) {
			throw new RuntimeException(e);
		}
		
	}

	public ArrayList<Usuario> searchUsuario(String dado){
		
		try{
			ArrayList<Usuario> usuario = new ArrayList<>();

		
		String sql = "SELECT * FROM Usuario WHERE Username = ?";
		
		
			stmt = conn.prepareStatement(sql);
			

	
			stmt.setString(1, dado);
		
		
			
			ResultSet rs = stmt.executeQuery();
			
			while(rs.next()){
				
				Usuario usuario2 = new Usuario();
				
				usuario2.setUsername(rs.getString("username"));
				usuario2.setPassword(rs.getString("password"));
				
				usuario.add(usuario2);
			}
			
			return usuario;
		}
		catch (SQLException e){
			throw new RuntimeException(e);
		}
	}

	public void deleteUsuario(Usuario usuario){
		try{
			String sql = "DELETE FROM usuario WHERE idUsuario=?";
			
			stmt = conn.prepareStatement(sql);
			
			stmt.setString(1, usuario.getUsername());
			stmt.setString(2, usuario.getPassword());
			
			stmt.execute();
			
			stmt.close();
		}
		catch (SQLException e){
			throw new RuntimeException(e);
		}
	}

	public void updateUsuario(Usuario usuario){
		
		String sql = "UPDATE usuario SET " + 
				"password= ? "+
				"where username = ?"; 

					  
		
		try {
			stmt = conn.prepareStatement(sql);
			
			stmt.setString(2, usuario.getUsername());
			stmt.setString(1, usuario.getPassword());
			
			stmt.execute();

			stmt.close();

			
			
		} catch (SQLException e){
			throw new RuntimeException(e);

		}
		
	}
}
